package com.starry.module.system.core.oauth2.service;


import com.starry.module.system.core.member.entity.MemberUser;
import com.starry.module.system.core.oauth2.entity.Oauth2ThirdAccount;
import com.starry.module.system.core.user.entity.SysUser;

/**
 * 第三方用户-服务
 *
 * @author xiaoke
 */
public interface Oauth2ThirdAccountService {

    /**
     * 获取第三方用户信息查询（后台）
     *
     * @param openId openId
     * @param type   类型
     * @return Oauth2ThirdAccount
     */
    SysUser getByOpenIdAndType(String openId, String type);

    /**
     * 获取第三方用户信息查询（会员）
     *
     * @param openId openId
     * @param type   类型
     * @return Oauth2ThirdAccount
     */
    MemberUser getMemberByOpenIdAndType(String openId, String type);

    /**
     * 初始化第三方用户 (后台)
     *
     * @param thirdAccount 第三方用户
     * @return SysUser
     */
    SysUser initThirdAccount(Oauth2ThirdAccount thirdAccount);

    /**
     * 初始化会员第三方用户
     *
     * @param thirdAccount 第三方用户
     * @return MemberUser
     */
    MemberUser initMemberThirdAccount(Oauth2ThirdAccount thirdAccount);
}

